<?php
/**
 * Created by PhpStorm.
 * User: tangping
 * Date: 16/4/23
 * Time: 下午9:37
 */

namespace Library;


class Security
{
    /**
     * 取得令牌内容
     * 自动输出html 隐藏域
     *
     * @param
     * @return void 字符串形式的返回结果
     */
    public static function getToken(){
        $token = Common::encrypt(TIMESTAMP,md5(MD5_KEY));
        echo "<input type='hidden' name='formhash' value='". $token ."' />";
    }
    public static function getTokenValue(){
        return Common::encrypt(TIMESTAMP,md5(MD5_KEY));
    }

    /**
     * 判断令牌是否正确
     *
     * @param
     * @return bool 布尔类型的返回结果
     */
    public static function checkToken(){
        $data = Common::decrypt($_POST['formhash'],md5(MD5_KEY));
        return $data && (TIMESTAMP - $data < 5400);
    }

    /**
     * 将字符 & " < > 替换
     *
     * @param unknown_type $string
     * @return unknown
     */
    public static function fliterHtmlSpecialChars($string) {
        $string = preg_replace('/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
            str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $string));
        return $string;
    }

}